namespace WindowsAPI.Hooks
{
    public class MouseHookLL : Hook
    {
        public MouseHookLL() : base(HookType.WH_MOUSE_LL) { }

        protected override void OnEvent(HookEventArgs Args) { base.OnEvent(new MouseHookEventArgs(Args)); }
    }

    public class MouseHookEventArgs : HookEventArgs
    {
        public Mouse.Message Message { get; private set; }

        public Mouse.MsllHookStruct Info { get; private set; }

        public MouseHookEventArgs(HookEventArgs e)
            : base(e)
        {
            Message = (Mouse.Message)e.wParams;
            Info = (Mouse.MsllHookStruct)e.lParams;
        }

        public override string ToString() { return string.Format("{0}:{1}", Message, Info); }
    }
}